﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Lavanderia.Entities;
using Lavanderia.Repository;
using Microsoft.Practices.Unity;

namespace Lavanderia.BL
{
    public class VentaBL:IVentaBL
    {
        [Dependency]
        public IVentaRepository ventaDAO { get; set; }

        public List<VENTA> GetAllFromVentas()
        {
            return ventaDAO.GetAllFromVentas();
        }

        public List<VENTA> GetAllFromVentasByCriterio(string criterio)
        {
            return ventaDAO.GetAllFromVentasByCriterio(criterio);
        }

        public List<VENTA> GetAllFromVentasByNComprobante(int ncomp)
        {
            return ventaDAO.GetAllFromVentasByNComprobante(ncomp);
        }

        public List<VENTA> GetAllFromVentasByFecha(DateTime fecha)
        {
            return ventaDAO.GetAllFromVentasByFecha(fecha);
        }

        public List<VENTA> GetAllFromVentasCanceladas()
        {
            return ventaDAO.GetAllFromVentasCanceladas();
        }

        public List<VENTA> GetAllFromVentasEntregadas()
        {
            return ventaDAO.GetAllFromVentasEntregadas();
        }

        public List<VENTA> GetAllFromVentasByCriterioAndEntregadas(string criterio)
        {
            return ventaDAO.GetAllFromVentasByCriterioAndEntregadas(criterio);
        }

        public VENTA GetAllFromVentasById(int id)
        {
            return ventaDAO.GetAllFromVentasById(id);
        }

        public void AddVentas(VENTA venta)
        {
            ventaDAO.AddVentas(venta);
        }

        public void UpdateVentas(VENTA venta)
        {
            ventaDAO.UpdateVentas(venta);
        }

        public void RemoveVentas(int id)
        {
            throw new NotImplementedException();
        }

        public List<VENTA> GetAllFromVentasByFechaForArqueo(DateTime fecha)
        {
            return ventaDAO.GetAllFromVentasByFechaForArqueo(fecha);
        }

        public List<VENTA> GetAllFromVentasByNComprobanteAndEntregadas(int ncomp)
        {
            return ventaDAO.GetAllFromVentasByNComprobanteAndEntregadas(ncomp);
        }

        public List<VENTA> GetAllFromVentasByFechaAndEntregadas(DateTime fecha)
        {
            return ventaDAO.GetAllFromVentasByFechaAndEntregadas(fecha);
        }

        public List<VENTA> GetAllFromVentasByFechaAbono(DateTime fechaAbono)
        {
            return ventaDAO.GetAllFromVentasByFechaAbono(fechaAbono);
        }


        public List<VENTA> GetAllFromVentasByAllFechas(DateTime fecha)
        {
            return ventaDAO.GetAllFromVentasByAllFechas(fecha);
        }


        public List<VENTA> GetAllFromVentasOfDay(DateTime fecha)
        {
            return ventaDAO.GetAllFromVentasOfDay(fecha);
        }

        public List<VENTA> GetAllFromVentasOfMonth(int fecha)
        {
            return ventaDAO.GetAllFromVentasOfMonth(fecha);
        }

        public List<VENTA> GetAllFromVentasOfYear(int fecha)
        {
            return ventaDAO.GetAllFromVentasOfYear(fecha);
        }


        public List<VENTA> GetAllFromVentasCanceladasOfDay(DateTime fecha)
        {
            return ventaDAO.GetAllFromVentasCanceladasOfDay(fecha);
        }

        public List<VENTA> GetAllFromVentasCanceladasOfMonth(int fecha)
        {
            return ventaDAO.GetAllFromVentasCanceladasOfMonth(fecha);
        }

        public List<VENTA> GetAllFromVentasCanceladasOfYear(int fecha)
        {
            return ventaDAO.GetAllFromVentasCanceladasOfYear(fecha);
        }
    }
}
